select 
CONCAT(CONCAT ('IT018E',SUBSTR(CONCAT('0000000',trim(forn.codice_allacciamento)),-7,7)),SUBSTR(forn.PROGRESSIVO_UTENZA,-1,1)) "POD",
contratti.codice_utente  "Codice Cliente",
contratti.codice_contratto,
persone.codice_persona "Codice utilizzatore",
persone.nominativo_rag_soc "Denominazione",
substr(concat('0000000000',persone.partita_iva),-11,11)  "Partita Iva",
persone.codice_fiscale "Codice Fiscale",
concat(
concat(
concat(concat(TRim(indirizzi.toponimo_via),' '),
concat(TRim(indirizzi.prefisso_via), ' ')),
concat(TRim(indirizzi.denominazione_via),' ')),
       TRim(TO_CHAR(indirizzi.civico))) "Indirizzo punto di prelievo",
 case when gruppi.raggrupp_riepfatt like '%DOMEST%' then 'DOMESTICO' else 
      case when gruppi.raggrupp_riepfatt like '%III%'then 'Illuminazione pubblica' else 'Altri usi' end end "Tipo Agevolazione",
       gruppi.opzione_tar "Tensione",
       contratti.POTENZA_TOLLERATA "POT DISP",
 to_char(contratti.data_avvio) "Decorrenza Attivazione",
 case when contratti.stato_contratto = 'C' then to_char(contratti.data_chiusura) else '' end "Decorrenza Chiusura",
contratti.stato_contratto "Stato",
case when Bol_con.bol_con_mod like 'M4%' Then 'O' else 
        case when Bol_con.bol_con_mod in ('TM80','RT90','R790','R990','M2AT','M2OT', 'M3AC', 'M3OC', 'M3AR', 'M3OR', 'M3AM', 'M3OM')  
        THEN 'E' ELSE  'M' end END "Tipo Misuratore",
 bol_con.bol_con_mat as "Matricola",
contratti_aggregazioni.codice_persona_titolare "Codice Titolare",
       perso.nominativo_rag_soc "Denominazione Titolare",
       substr(concat('0000000000',perso.partita_iva),-11,11) "Partita Iva Titolare",
concat(concat(     
       BF.mese_b,'-'),
        BF.anno_b) "Bollettazione",
        BF.TIPO_B "Tipo Fattura",
         fatture.data_emissione_fattura "Data Emissione",
 case when bf.ac = 'C' then  TO_CHAR(BF.dt_let_in,'DD/MM/YYYY') else '' end "Data Inizio Periodo Lettura",
 case when bf.ac = 'C' then  TO_CHAR(BF.dt_let_Fin,'DD/MM/YYYY') else '' end "Data Fine Periodo Lettura",
     --  BF.dt_let_fin "Data Fine Periodo Lettura",
         
        
 case when Bol_con.bol_con_mod like 'M%' then '' else BF.letinic1 end "Lettura iniziale F0",
 case when Bol_con.bol_con_mod like 'M%' then  BF.letinic1 else '' end "Lettura iniziale F1",
 case when Bol_con.bol_con_mod like 'M%' then  BF.letinic2 else '' end "Lettura iniziale F2",
 case when Bol_con.bol_con_mod like 'M%' then  BF.letinic3 else '' end "Lettura iniziale F3",
 case when Bol_con.bol_con_mod like 'M%' then '' else BF.letfinec1 end "Lettura finale F0",
 case when Bol_con.bol_con_mod like 'M%' then  BF.letfinec1 else '' end "Lettura finale F1",     
 case when Bol_con.bol_con_mod like 'M%' then  BF.letfinec2 else '' end"Lettura finale F2", 
 case when Bol_con.bol_con_mod like 'M%' then  BF.letfinec3 else '' end"Lettura finale F3", 
 forn.FATTORE_CORRETTIVO "Costante K",   
 
 

  case when Bol_con.bol_con_mod like 'M%' then '' else BF.cons1 end "F0",
 case when Bol_con.bol_con_mod like 'M%' then  BF.cons1 else '' end "F1",     
   case when Bol_con.bol_con_mod like 'M%' then  BF.cons2 else '' end "F2",
    case when Bol_con.bol_con_mod like 'M%' then  BF.cons3 else '' end "F3",    
        
       (nvl(cons1,0)+nvl(cons2,0)+nvl(cons3,0)) "Totale (KWh)",
       --CRV010.quantita_voce as QTA_FATTURATA,
       
       
  (select competenze_riepilogo_voci.quantita_voce from competenze_riepilogo_voci where competenze_riepilogo_voci.codice_gestione = 'ASM'
                                                and competenze_riepilogo_voci.codice_servizio = 'E'
                                                and competenze_riepilogo_voci.codice_voce = '010'
                                                and competenze_riepilogo_voci.codice_origine_competenza = 'B'
                                                and competenze_riepilogo_voci.codice_competenza = BF.codice_bolletta
                                                and competenze_riepilogo_voci.codice_riferimento = BF.COD_CONTR)    "QTA_FATTURATA",       
       
       
       
 case when Bol_con.bol_con_mod like 'M%' then '' else BF.letinir1 end "Lettura Reatt. iniziale F0",
 case when Bol_con.bol_con_mod like 'M%' then  BF.letinir1 else '' end "LetturaReatt. iniziale F1",
 case when Bol_con.bol_con_mod like 'M%' then  BF.letinir2 else '' end "Lettura Reatt. iniziale F2",
 case when Bol_con.bol_con_mod like 'M%' then  BF.letinir3 else '' end "Lettura Reatt. iniziale F3",
 case when Bol_con.bol_con_mod like 'M%' then '' else BF.letfiner1 end "Lettura Reatt. finale F0",
 case when Bol_con.bol_con_mod like 'M%' then  BF.letfiner1 else '' end "Lettura Reatt.finale F1",     
 case when Bol_con.bol_con_mod like 'M%' then  BF.letfiner2 else '' end"Lettura Reatt.finale F2", 
 case when Bol_con.bol_con_mod like 'M%' then  BF.letfiner3 else '' end"Lettura reatt.finale F3", 
 case when Bol_con.bol_con_mod like 'M%' then '' else BF.cons_r1 end "Reattiva F0",
 case when Bol_con.bol_con_mod like 'M%' then  BF.cons_r1 else '' end "Reattiva F1",     
 case when Bol_con.bol_con_mod like 'M%' then  BF.cons_r2 else '' end "Reattiva F2", 
 case when Bol_con.bol_con_mod like 'M%' then  BF.cons_r3 else '' end "Reattiva F3",    
 case when Bol_con.bol_con_mod like 'M%' then '' else BF.pmax_1 end "Potenza Max F0",
 case when Bol_con.bol_con_mod like 'M%' then  BF.pmax_1 else '' end "Potenza Max F1", 
   
 case when Bol_con.bol_con_mod like 'M%' then  BF.pmax_2 else '' end"Potenza Max F2", 
 case when Bol_con.bol_con_mod like 'M%' then  BF.pmax_3 else '' end"Potenza Max F3", 
   (select competenze_riepilogo_voci.QUANTITA_VOCE from competenze_riepilogo_voci where competenze_riepilogo_voci.codice_gestione = 'ASM'
                                               and competenze_riepilogo_voci.codice_servizio = 'E'
                                               and competenze_riepilogo_voci.codice_voce = '110'
                                               and competenze_riepilogo_voci.codice_origine_competenza = 'B'
                                               and competenze_riepilogo_voci.codice_competenza = BF.codice_bolletta
                                               and competenze_riepilogo_voci.codice_riferimento = BF.COD_CONTR)    "Pot. Max fatturata",
   
      (select competenze_riepilogo_voci.QUANTITA_VOCE from competenze_riepilogo_voci where competenze_riepilogo_voci.codice_gestione = 'ASM'
                                               and competenze_riepilogo_voci.codice_servizio = 'E'
                                               and competenze_riepilogo_voci.codice_voce = '120'
                                               and competenze_riepilogo_voci.codice_origine_competenza = 'B'
                                               and competenze_riepilogo_voci.codice_competenza = BF.codice_bolletta
                                               and competenze_riepilogo_voci.codice_riferimento = BF.COD_CONTR)    "QTA Fatt. V120",  
   
 
        competenze.totale_i "Base Imponibile (Eu)"    ,
            (-competenze.totale_iva
       -competenze.totale_i
       +competenze.importo_competenza)  "Non Imponibile (Eu)",
        competenze.totale_iva "IVA (Eu)",
        competenze.importo_competenza "Totale (Eu)",
        
    (select competenze_riepilogo_voci.IMPONIBILE_IVA from competenze_riepilogo_voci where competenze_riepilogo_voci.codice_gestione = 'ASM'
                                                and competenze_riepilogo_voci.codice_servizio = 'E'
                                                and competenze_riepilogo_voci.codice_voce = '300'
                                                and competenze_riepilogo_voci.codice_origine_competenza = 'B'
                                                and competenze_riepilogo_voci.codice_competenza = BF.codice_bolletta
                                                and competenze_riepilogo_voci.codice_riferimento = BF.COD_CONTR)    "Corrispettivo CTS", 
        
   (select competenze_riepilogo_voci.IMPONIBILE_IVA from competenze_riepilogo_voci where competenze_riepilogo_voci.codice_gestione = 'ASM'
                                                and competenze_riepilogo_voci.codice_servizio = 'E'
                                                and competenze_riepilogo_voci.codice_voce = '500'
                                                and competenze_riepilogo_voci.codice_origine_competenza = 'B'
                                                and competenze_riepilogo_voci.codice_competenza = BF.codice_bolletta
                                                and competenze_riepilogo_voci.codice_riferimento = BF.COD_CONTR)    "Garanzia Voce 500 (Eu)", 
      
                                                
     (select competenze_riepilogo_voci.IMPONIBILE_IVA from competenze_riepilogo_voci where competenze_riepilogo_voci.codice_gestione = 'ASM'
                                                and competenze_riepilogo_voci.codice_servizio = 'E'
                                                and competenze_riepilogo_voci.codice_voce = '510'
                                                and competenze_riepilogo_voci.codice_origine_competenza = 'B'
                                                and competenze_riepilogo_voci.codice_competenza = BF.codice_bolletta
                                                and competenze_riepilogo_voci.codice_riferimento = BF.COD_CONTR)    "Interessi Voce 510 (Eu)",  
                                                
                                                
   (select competenze_riepilogo_voci.IMPONIBILE_IVA from competenze_riepilogo_voci where competenze_riepilogo_voci.codice_gestione = 'ASM'
                                               and competenze_riepilogo_voci.codice_servizio = 'E'
                                                and competenze_riepilogo_voci.codice_voce = 'BEX08'
                                                and competenze_riepilogo_voci.codice_origine_competenza = 'B'
                                                and competenze_riepilogo_voci.codice_competenza = BF.codice_bolletta
                                                and competenze_riepilogo_voci.codice_riferimento = BF.COD_CONTR)    "Importo Bonus anno 2008 (Eu)", 
                                                
    (select competenze_riepilogo_voci.IMPONIBILE_IVA from competenze_riepilogo_voci where competenze_riepilogo_voci.codice_gestione = 'ASM'
                                               and competenze_riepilogo_voci.codice_servizio = 'E'
                                                and competenze_riepilogo_voci.codice_voce in('BEF')
                                                and competenze_riepilogo_voci.codice_origine_competenza = 'B'
                                                and competenze_riepilogo_voci.codice_competenza = BF.codice_bolletta
                                                and competenze_riepilogo_voci.codice_riferimento = BF.COD_CONTR)    "Importo Bonus Fisico (Eu)",  
                                                
        (select competenze_riepilogo_voci.QUANTITA_VOCE from competenze_riepilogo_voci where competenze_riepilogo_voci.codice_gestione = 'ASM'
                                                and competenze_riepilogo_voci.codice_servizio = 'E'
                                                and competenze_riepilogo_voci.codice_voce in('BEF')
                                                and competenze_riepilogo_voci.codice_origine_competenza = 'B'
                                                and competenze_riepilogo_voci.codice_competenza = BF.codice_bolletta
                                                and competenze_riepilogo_voci.codice_riferimento = BF.COD_CONTR)    "GG Bonus Fisico (Eu)",                                             
                                                
      (select competenze_riepilogo_voci.IMPONIBILE_IVA from competenze_riepilogo_voci where competenze_riepilogo_voci.codice_gestione = 'ASM'
                                                and competenze_riepilogo_voci.codice_servizio = 'E'
                                                and competenze_riepilogo_voci.codice_voce in('BEX09')
                                                and competenze_riepilogo_voci.codice_origine_competenza = 'B'
                                                and competenze_riepilogo_voci.codice_competenza = BF.codice_bolletta
                                                and competenze_riepilogo_voci.codice_riferimento = BF.COD_CONTR)    "Importo Bonus Economico (Eu)", 
                                                
      (select competenze_riepilogo_voci.QUANTITA_VOCE from competenze_riepilogo_voci where competenze_riepilogo_voci.codice_gestione = 'ASM'
                                                and competenze_riepilogo_voci.codice_servizio = 'E'
                                                and competenze_riepilogo_voci.codice_voce in('BEX09')
                                                and competenze_riepilogo_voci.codice_origine_competenza = 'B'
                                                and competenze_riepilogo_voci.codice_competenza = BF.codice_bolletta
                                                and competenze_riepilogo_voci.codice_riferimento = BF.COD_CONTR)    "GG Bonus Economico (Eu)",                                                                              
        
     
           fatture.progressivo_fattura "Fattura",
            contratti.potenza_impegnata "Potenza Impegnata",
            case when gruppi.lst = 'SALVA' Then 'S' else 'L' end "LIB_SALV",
            
                 (select distinct max(cori.NUMERO_CIFRE_INTERE) from bollette_contatori bc,contatori cori where bc.codice_gestione ='ASM' and bc.codice_servizio = 'E' 
                                                and bc.codice_bolletta = BF.codice_bolletta
                                                and cori.MATRICOLA_CONTATORE = bc.matricola_contatore
                                                and cori.CODICE_SERVIZIO ='E'
                                                and bc.codice_gestione = 'ASM'
                                                and bc.codice_servizio = 'E'
                                                and bc.tipo_misuratore like'C%'
                                                group by bc.codice_bolletta) "N.ro cifre cont. cons.",
      
                                                
            (select distinct max(cori.NUMERO_CIFRE_INTERE) from bollette_contatori bc,contatori cori where bc.codice_gestione ='ASM' and bc.codice_servizio = 'E' 
                                                and bc.codice_bolletta = BF.codice_bolletta
                                                and cori.MATRICOLA_CONTATORE = bc.matricola_contatore
                                                and cori.CODICE_SERVIZIO ='E'
                                                and bc.codice_gestione = 'ASM'
                                                and bc.codice_servizio = 'E'
                                                and bc.tipo_misuratore like'R%'
                                                group by bc.codice_bolletta) "N.ro cifre cont. Reat.",
                                                
           (select distinct max(cori.NUMERO_CIFRE_INTERE) from bollette_contatori bc,contatori cori where bc.codice_gestione ='ASM' and bc.codice_servizio = 'E' 
                                                and bc.codice_bolletta = BF.codice_bolletta
                                                and cori.MATRICOLA_CONTATORE = bc.matricola_contatore
                                                and cori.CODICE_SERVIZIO ='E'
                                                and bc.codice_gestione = 'ASM'
                                                and bc.codice_servizio = 'E'
                                                and bc.tipo_misuratore like'M%'
                                                group by bc.codice_bolletta) "N.ro cifre cont. Pot.",
          case when gruppi.DENOM_TAR like '%FOTOVOLTAICO%' then 'SI' end "Fotov.co",
          Bol_con.bol_con_mod "Modello Contatore",
          contratti.CODICE_GRUPPO_BOLLETTAZIONE "Gruppo Bollettazione",
          bf.tip_sc "Fotovoltaico"
        
      
 
from contratti, 
     gruppi,
    indirizzi,persone perso,asm_estr_paol_BF bf,
       persone,
       contratti_aggregazioni,
       
       fatture,
       competenze,FORNITURE forn,asm_estr_paol_bol_con bol_con
    
        
where  contratti.codice_gestione = 'ASM'
      and contratti.codice_servizio = 'E'
      and  contratti.codice_tipo_uso = gruppi.codice_tipo_uso
      and  contratti.codice_tariffa = gruppi.codice_tariffa
      and  contratti.codice_uso = gruppi.codice_uso
      
      
      
      and contratti_aggregazioni.codice_gestione = 'ASM'
      and contratti_aggregazioni.codice_utente = contratti.codice_utente
      and persone.codice_persona = contratti_aggregazioni.codice_persona_utilizzatore
      
     
      
      and BF.COD_CONTR = contratti.codice_contratto
      and fatture.codice_gestione = 'ASM'
      and fatture.codice_fattura = BF.codice_bolletta
      and fatture.CODICE_ORIGINE_FATTURA = 'B'
      and competenze.CODICE_ORIGINE_COMPETENZA= fatture.CODICE_ORIGINE_FATTURA
      and competenze.codice_gestione = 'ASM'
      and competenze.codice_competenza = BF.codice_bolletta
      and forn.codice_gestione = 'ASM'
      and forn.codice_servizio = 'E'
      and forn.codice_contratto = contratti.codice_contratto
     
   
      and indirizzi.codice_indirizzo=contratti_aggregazioni.codice_indirizzo_utilizzatore
      and perso.codice_persona = contratti_aggregazioni.codice_persona_titolare
      
      and bol_con.codice_bolletta(+)=BF.CODICE_BOLLETTA
      AND BOL_CON.CODICE_CONTRATTO(+)=BF.COD_CONTR
      
      --and bollette.stato_bolletta = 'F'
     -- and CONTRATTI_AGGREGAZIONI.CODICE_PERSONA_TITOLARE=1007615;
     and CONTRATTI_AGGREGAZIONI.CODICE_PERSONA_TITOLARE <= case when ^Codice Titolare xxxxxxxx ( se 0 tutti);N;Numerico^^ = 0 then 99999999 
     else ^Codice Titolare xxxxxxxx ( se 0 tutti);N;Numerico;4^^ end
     and CONTRATTI_AGGREGAZIONI.CODICE_PERSONA_TITOLARE >= case when ^Codice Titolare xxxxxxxx ( se 0 tutti);N;Numerico;4^^ = 0 then 0 
     else ^Codice Titolare xxxxxxxx ( se 0 tutti);N;Numerico;4^^ end
      
  